home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacHack 2000
/
MacHack 2000.toast
/
pc
/
The Hacks
/
Softshoe
/
Lisa's Mac Parts
/
AppleEvents
/
AEGetter.h
< prev
Wrap
Text File
|
2000-06-23
|
1KB
|
58 lines
// AEGetter.h
#ifndef AEGetter_h
#define AEGetter_h
#ifndef ConstAEAttribute_h
#include "ConstAEAttribute.h"
#endif
#ifndef ConstAEParameter_h
#include "ConstAEParameter.h"
#endif
#ifndef ConstAEListItem_h
#include "ConstAEListItem.h"
#endif
#ifndef ConstAEMember_h
#include "ConstAEMember.h"
#endif
#ifndef AEDescriptor_h
#include "AEDescriptor.h"
#endif
// Someday, when Codewarrior can handle it, this should become
// member templates like:
//
// template < DescType desiredType >
// AEAtomicType<desiredType>::Type ConstAEAttribute::Get<desiredType>()
// {
// AEAtomicType<desiredType>::Type result;
// attribute.Get( desiredType, Data( &result, sizeof(result) ) );
// }
template < DescType desiredType > class AEGetter
{
private:
AEAtomicType<desiredType>::Type result;
public:
AEGetter( const AEDescriptor& source )
{ source.Get( desiredType, Data( &result, sizeof(result) ) ); }
AEGetter( const ConstAEAttribute& source )
{ source.Get( desiredType, Data( &result, sizeof(result) ) ); }
AEGetter( const ConstAEParameter& source )
{ source.Get( desiredType, Data( &result, sizeof(result) ) ); }
AEGetter( const ConstAEListItem& source )
{ source.Get( desiredType, Data( &result, sizeof(result) ) ); }
AEGetter( const ConstAEMember& source )
{ source.Get( desiredType, Data( &result, sizeof(result) ) ); }
operator AEAtomicType<desiredType>::Type() const
{ return result; }
};
#endif